80385c00: 27 bd ff d0  ADDIU sp, sp, 0xffffffd0 (-48)
80385c04: af bf 00 14  SW ra, sp, 0x14 (20)

80385c08: 3c 0e 80 36  LUI t6, 0x8036 (32822)
80385c0c: 8d ce 11 60  LW t6, t6, 0x1160 (4448)
80385c10: 8d cf 00 8c  LW t7, t6, 0x8c (140)
80385c14: a7 af 00 2a  SH t7, sp, 0x2a (42)                [sp + 0x2a] = (*(0x80361160))->off0x8c;

80385c18: 87 b8 00 2a  LH t8, sp, 0x2a (42)
80385c1c: 33 19 00 40  ANDI t9, t8, 0x40 (64)
80385c20: 13 20 00 0e  BEQ r0, t9, 0x80385c5c (pc + 0x38)  if ([sp + 0x2a] == 0) goto 0x80385c5c;
80385c24: 00 00 00 00  NOP

80385c28: 3c 04 80 36  LUI a0, 0x8036 (32822)
80385c2c: 3c 05 80 36  LUI a1, 0x8036 (32822)
80385c30: 8c a5 11 58  LW a1, a1, 0x1158 (4440)
80385c34: 0c 0a 78 be  JAL 0x8029e2f8 (-2144738568)        *(0x80361160)->off0x15c = 0x8029e2f8(*(0x80361160), *(0x80361158));
80385c38: 8c 84 11 60  LW a0, a0, 0x1160 (4448)
80385c3c: 3c 08 80 36  LUI t0, 0x8036 (32822)
80385c40: 8d 08 11 60  LW t0, t0, 0x1160 (4448)
80385c44: e5 00 01 5c  SWC1 f0, t0, 0x15c (348)            

80385c48: 3c 09 80 36  LUI t1, 0x8036 (32822)
80385c4c: 8d 29 11 60  LW t1, t1, 0x1160 (4448)
80385c50: c5 24 01 5c  LWC1 f4, t1, 0x15c (348)
80385c54: 10 00 00 04  BEQ r0, r0, 0x80385c68 (pc + 0x10)  [sp + 0x24] = (*(0x80361160))->off0x1c5;
80385c58: e7 a4 00 24  SWC1 f4, sp, 0x24 (36)              goto 0x80385c68;

*
80385c5c: 44 80 30 00  MTC1 r0, f6
80385c60: 00 00 00 00  NOP
80385c64: e7 a6 00 24  SWC1 f6, sp, 0x24 (36)              [sp + 0x24] = 0.0;

*
80385c68: 87 aa 00 2a  LH t2, sp, 0x2a (42)
80385c6c: 31 4b 20 00  ANDI t3, t2, 0x2000 (8192)
80385c70: 11 60 00 09  BEQ r0, t3, 0x80385c98 (pc + 0x24)  if (([sp + 0x2a] & 0x2000) == 0) goto 0x80385c98;
80385c74: 00 00 00 00  NOP

80385c78: 3c 04 80 36  LUI a0, 0x8036 (32822)
80385c7c: 3c 05 80 36  LUI a1, 0x8036 (32822)
80385c80: 8c a5 11 58  LW a1, a1, 0x1158 (4440)
80385c84: 0c 0a 79 a5  JAL 0x8029e694 (-2144737644)        (*(0x80361160))->off0x160 = 0x8029e694(*(0x80361160), *(0x80361158));
80385c88: 8c 84 11 60  LW a0, a0, 0x1160 (4448)
80385c8c: 3c 0c 80 36  LUI t4, 0x8036 (32822)
80385c90: 8d 8c 11 60  LW t4, t4, 0x1160 (4448)
80385c94: ad 82 01 60  SW v0, t4, 0x160 (352)

*
80385c98: 3c 0d 80 36  LUI t5, 0x8036 (32822)
80385c9c: 8d ad 11 60  LW t5, t5, 0x1160 (4448)
80385ca0: 8d ae 01 8c  LW t6, t5, 0x18c (396)
80385ca4: 8d af 01 4c  LW t7, t5, 0x14c (332)
80385ca8: 11 cf 00 0b  BEQ t7, t6, 0x80385cd8 (pc + 0x2c)  if ((*(0x80361160))->off0x14c == (*(0x80361160))->off0x18c) goto 0x80385cd8;
80385cac: 00 00 00 00  NOP

80385cb0: 3c 18 80 36  LUI t8, 0x8036 (32822)
80385cb4: 8f 18 11 60  LW t8, t8, 0x1160 (4448)
80385cb8: 3c 19 80 36  LUI t9, 0x8036 (32822)
80385cbc: 3c 08 80 36  LUI t0, 0x8036 (32822)
80385cc0: af 00 01 54  SW r0, t8, 0x154 (340)              (*(0x80361160))->off0x154 = 0;

80385cc4: 8f 39 11 60  LW t9, t9, 0x1160 (4448)
80385cc8: af 20 01 50  SW r0, t9, 0x150 (336)              (*(0x80361160))->off0x150 = 0;

80385ccc: 8d 08 11 60  LW t0, t0, 0x1160 (4448)
80385cd0: 8d 09 01 4c  LW t1, t0, 0x14c (332)
80385cd4: ad 09 01 8c  SW t1, t0, 0x18c (396)              (*(0x80361160))->off0x18c = (*(0x80361160))->off0x14c;

*
80385cd8: 3c 0a 80 36  LUI t2, 0x8036 (32822)
80385cdc: 8d 4a 11 60  LW t2, t2, 0x1160 (4448)
80385ce0: 3c 01 80 36  LUI at, 0x8036 (32822)
80385ce4: 8d 4b 01 cc  LW t3, t2, 0x1cc (460)
80385ce8: ac 2b 11 64  SW t3, at, 0x1164 (4452)           *(0x80361164) =  (*(0x80361160))->off0x1cc;

*
80385cec: 3c 0c 80 36  LUI t4, 0x8036 (32822)
80385cf0: 8d 8c 11 64  LW t4, t4, 0x1164 (4452)
80385cf4: 3c 18 80 39  LUI t8, 0x8039 (32825)
80385cf8: 8d 8d 00 00  LW t5, t4, 0x0 (0)
80385cfc: 00 0d 76 02  SRL t6, t5, 0x18 (24)
80385d00: 00 0e 78 80  SLL t7, t6, 0x2 (2)
80385d04: 03 0f c0 21  ADDU t8, t8, t7
80385d08: 8f 18 b9 b0  LW t8, t8, 0xffffb9b0 (-18000)
80385d0c: af b8 00 20  SW t8, sp, 0x20 (32)                [sp + 0x20] = 0x8038b9b0[((*(0x80361164))->off0x0>>24)];

80385d10: 8f b9 00 20  LW t9, sp, 0x20 (32)
80385d14: 03 20 f8 09  JALR t9, ra                         [sp + 0x1c] = ([sp + 0x20])();
80385d18: 00 00 00 00  NOP
80385d1c: af a2 00 1c  SW v0, sp, 0x1c (28)

80385d20: 8f a9 00 1c  LW t1, sp, 0x1c (28)
80385d24: 11 20 ff f1  BEQ r0, t1, 0x80385cec (pc - 0x3c)  if ([sp + 0x1c] == 0) goto 0x80385cec;
80385d28: 00 00 00 00  NOP

80385d2c: 3c 08 80 36  LUI t0, 0x8036 (32822)
80385d30: 3c 0a 80 36  LUI t2, 0x8036 (32822)
80385d34: 8d 4a 11 60  LW t2, t2, 0x1160 (4448)
80385d38: 8d 08 11 64  LW t0, t0, 0x1164 (4452)
80385d3c: ad 48 01 cc  SW t0, t2, 0x1cc (460)              (*(0x80361160))->off0x1cc = *(0x80361164);

80385d40: 3c 0b 80 36  LUI t3, 0x8036 (32822)
80385d44: 8d 6b 11 60  LW t3, t3, 0x1160 (4448)
80385d48: 3c 01 3f ff  LUI at, 0x3fff (16383)
80385d4c: 34 21 ff ff  ORI at, at, 0xffff (65535)
80385d50: 8d 6c 01 54  LW t4, t3, 0x154 (340)
80385d54: 01 81 08 2a  SLT at, t4, at
80385d58: 10 20 00 06  BEQ r0, at, 0x80385d74 (pc + 0x18)  if (!((*(0x80361160))->off0x154 < 0x3fffffff)) goto 0x80385d74;
80385d5c: 00 00 00 00  NOP

80385d60: 3c 0d 80 36  LUI t5, 0x8036 (32822)
80385d64: 8d ad 11 60  LW t5, t5, 0x1160 (4448)
80385d68: 8d ae 01 54  LW t6, t5, 0x154 (340)
80385d6c: 25 cf 00 01  ADDIU t7, t6, 0x1 (1)
80385d70: ad af 01 54  SW t7, t5, 0x154 (340)              (*(0x80361160))->off0x154++

*
80385d74: 3c 18 80 36  LUI t8, 0x8036 (32822)
80385d78: 8f 18 11 60  LW t8, t8, 0x1160 (4448)
80385d7c: 8f 19 01 8c  LW t9, t8, 0x18c (396)
80385d80: 8f 09 01 4c  LW t1, t8, 0x14c (332)
80385d84: 13 29 00 0b  BEQ t1, t9, 0x80385db4 (pc + 0x2c)  if ((*(0x80361160))->off0x14c == (*(0x80361160))->off0x18c) goto 0x80385db4;
80385d88: 00 00 00 00  NOP

80385d8c: 3c 08 80 36  LUI t0, 0x8036 (32822)
80385d90: 8d 08 11 60  LW t0, t0, 0x1160 (4448)
80385d94: 3c 0a 80 36  LUI t2, 0x8036 (32822)
80385d98: 3c 0b 80 36  LUI t3, 0x8036 (32822)
80385d9c: ad 00 01 54  SW r0, t0, 0x154 (340)              (*(0x80361160))->off0x154 = 0;
80385da0: 8d 4a 11 60  LW t2, t2, 0x1160 (4448)
80385da4: ad 40 01 50  SW r0, t2, 0x150 (336)              (*(0x80361160))->off0x150 = 0;
80385da8: 8d 6b 11 60  LW t3, t3, 0x1160 (4448)
80385dac: 8d 6c 01 4c  LW t4, t3, 0x14c (332)
80385db0: ad 6c 01 8c  SW t4, t3, 0x18c (396)              (*(0x80361160))->off0x18c = (*(0x80361160))->off0x14c;

*
80385db4: 3c 0e 80 36  LUI t6, 0x8036 (32822)
80385db8: 8d ce 11 60  LW t6, t6, 0x1160 (4448)
80385dbc: 8d cf 00 8c  LW t7, t6, 0x8c (140)
80385dc0: a7 af 00 2a  SH t7, sp, 0x2a (42)                [sp + 0x2a] = (*(0x80361160))->off0x8c;

80385dc4: 87 ad 00 2a  LH t5, sp, 0x2a (42)
80385dc8: 31 b8 00 10  ANDI t8, t5, 0x10 (16)
80385dcc: 13 00 00 04  BEQ r0, t8, 0x80385de0 (pc + 0x10)  if (0 == ([sp + 0x2a] & 0x10)) goto 0x80385de0;
80385dd0: 00 00 00 00  NOP

80385dd4: 3c 04 80 36  LUI a0, 0x8036 (32822)
80385dd8: 0c 0a 7e 3b  JAL 0x8029f8ec (-2144732948)        0x8029f8ec(*(0x80361160));
80385ddc: 8c 84 11 60  LW a0, a0, 0x1160 (4448)

*
80385de0: 87 b9 00 2a  LH t9, sp, 0x2a (42)
80385de4: 33 29 00 08  ANDI t1, t9, 0x8 (8)
80385de8: 11 20 00 05  BEQ r0, t1, 0x80385e00 (pc + 0x14)  if (0 == ([sp + 0x2a] & 0x08)) goto 0x80385e00;
80385dec: 00 00 00 00  NOP

80385df0: 3c 08 80 36  LUI t0, 0x8036 (32822)
80385df4: 8d 08 11 60  LW t0, t0, 0x1160 (4448)
80385df8: 8d 0a 00 c8  LW t2, t0, 0xc8 (200)
80385dfc: ad 0a 00 d4  SW t2, t0, 0xd4 (212)               (*(0x80361160))->off0xd4 = (*(0x80361160))->off0xc8;

*
80385e00: 87 ac 00 2a  LH t4, sp, 0x2a (42)
80385e04: 31 8b 00 02  ANDI t3, t4, 0x2 (2)
80385e08: 11 60 00 03  BEQ r0, t3, 0x80385e18 (pc + 0xc)  if (0 == ([sp + 0x2a] & 0x02)) goto 0x80385e18;
80385e0c: 00 00 00 00  NOP

80385e10: 0c 0a 84 83  JAL 0x802a120c (-2144726516)       0x802a120c();
80385e14: 00 00 00 00  NOP

*
80385e18: 87 ae 00 2a  LH t6, sp, 0x2a (42)
80385e1c: 31 cf 00 04  ANDI t7, t6, 0x4 (4)
80385e20: 11 e0 00 03  BEQ r0, t7, 0x80385e30 (pc + 0xc)   if (0 == ([sp + 0x2a] & 0x04)) goto 0x80385e30;
80385e24: 00 00 00 00  NOP

80385e28: 0c 0a 84 a9  JAL 0x802a12a4 (-2144726364)        0x802a12a4();
80385e2c: 00 00 00 00  NOP

*
80385e30: 87 ad 00 2a  LH t5, sp, 0x2a (42)
80385e34: 31 b8 02 00  ANDI t8, t5, 0x200 (512)
80385e38: 13 00 00 04  BEQ r0, t8, 0x80385e4c (pc + 0x10)  if (0 == ([sp + 0x2a] & 0x200)) goto 0x80385e4c;
80385e3c: 00 00 00 00  NOP

80385e40: 3c 04 80 36  LUI a0, 0x8036 (32822)
80385e44: 0c 0a 8a a1  JAL 0x802a2a84 (-2144720252)        0x802a2a84(*(0x80361160));
80385e48: 8c 84 11 60  LW a0, a0, 0x1160 (4448)

*
80385e4c: 87 b9 00 2a  LH t9, sp, 0x2a (42)
80385e50: 33 29 08 00  ANDI t1, t9, 0x800 (2048)
80385e54: 11 20 00 04  BEQ r0, t1, 0x80385e68 (pc + 0x10)  if (0 == ([sp + 0x2a] & 0x800)) goto 0x80385e68;
80385e58: 00 00 00 00  NOP

80385e5c: 3c 04 80 36  LUI a0, 0x8036 (32822)
80385e60: 0c 0a 8a 86  JAL 0x802a2a18 (-2144720360)        0x802a2a18(*(0x80361160));
80385e64: 8c 84 11 60  LW a0, a0, 0x1160 (4448)

*
80385e68: 87 aa 00 2a  LH t2, sp, 0x2a (42)
80385e6c: 31 48 00 01  ANDI t0, t2, 0x1 (1)
80385e70: 11 00 00 04  BEQ r0, t0, 0x80385e84 (pc + 0x10)  if (0 == ([sp + 0x2a] & 0x01)) goto 0x80385e84;
80385e74: 00 00 00 00  NOP

80385e78: 3c 04 80 36  LUI a0, 0x8036 (32822)
80385e7c: 0c 0e 0f 5a  JAL 0x80383d68 (-2143797912)        0x80383d68(*(0x80361160));
80385e80: 8c 84 11 60  LW a0, a0, 0x1160 (4448)

*
80385e84: 3c 0c 80 36  LUI t4, 0x8036 (32822)
80385e88: 8d 8c 11 60  LW t4, t4, 0x1160 (4448)
80385e8c: 24 01 ff ff  ADDIU at, r0, 0xffffffff (-1)
80385e90: 8d 8b 01 a0  LW t3, t4, 0x1a0 (416)
80385e94: 11 61 00 05  BEQ at, t3, 0x80385eac (pc + 0x14)  if (-1 == (*(0x80361160))->off0x1a0) goto 0x80385eac;
80385e98: 00 00 00 00  NOP

80385e9c: 0c 0a 90 84  JAL 0x802a4210 (-2144714224)        0x802a4210();
80385ea0: 00 00 00 00  NOP

80385ea4: 10 00 00 32  BEQ r0, r0, 0x80385f70 (pc + 0xc8)  goto 0x80385f70;
80385ea8: 00 00 00 00  NOP

*
80385eac: 87 ae 00 2a  LH t6, sp, 0x2a (42)
80385eb0: 31 cf 00 40  ANDI t7, t6, 0x40 (64)
80385eb4: 11 e0 00 2e  BEQ r0, t7, 0x80385f70 (pc + 0xb8)  if (0 == ([sp + 0x2a] & 0x40)) goto 0x80385f70;
80385eb8: 00 00 00 00  NOP

80385ebc: 3c 0d 80 36  LUI t5, 0x8036 (32822)
80385ec0: 8d ad 11 60  LW t5, t5, 0x1160 (4448)
80385ec4: 8d b8 02 18  LW t8, t5, 0x218 (536)
80385ec8: 17 00 00 29  BNE t8, r0, 0x80385f70 (pc + 0xa4)  if ((*(0x80361160))->off0x218 != 0) goto 0x80385f70;
80385ecc: 00 00 00 00  NOP

80385ed0: 87 b9 00 2a  LH t9, sp, 0x2a (42)
80385ed4: 33 29 00 80  ANDI t1, t9, 0x80 (128)
80385ed8: 15 20 00 25  BNE t1, r0, 0x80385f70 (pc + 0x94)  if (0 != ([sp + 0x2a] & 0x80)) goto 0x80385f70;
80385edc: 00 00 00 00  NOP

80385ee0: 3c 0a 80 36  LUI t2, 0x8036 (32822)
80385ee4: 8d 4a 11 60  LW t2, t2, 0x1160 (4448)
80385ee8: c7 a8 00 24  LWC1 f8, sp, 0x24 (36)
80385eec: c5 4a 01 9c  LWC1 f10, t2, 0x19c (412)
80385ef0: 46 08 50 3c  C.LT.S f10, f8
80385ef4: 00 00 00 00  NOP
80385ef8: 45 00 00 0d  BC1F 0x80385f30 (pc + 0x34)         if ((*(0x80361160))->off0x19c < [sp + 0x24]) goto 0x80385f30;
80385efc: 00 00 00 00  NOP

80385f00: 3c 08 80 36  LUI t0, 0x8036 (32822)
80385f04: 8d 08 11 60  LW t0, t0, 0x1160 (4448)
80385f08: 24 01 ff fe  ADDIU at, r0, 0xfffffffe (-2)
80385f0c: 85 0c 00 02  LH t4, t0, 0x2 (2)
80385f10: 01 81 58 24  AND t3, t4, at
80385f14: a5 0b 00 02  SH t3, t0, 0x2 (2)                  ((*(0x80361160))->off0x2 &= 0xfffffffe;

80385f18: 3c 0e 80 36  LUI t6, 0x8036 (32822)
80385f1c: 8d ce 11 60  LW t6, t6, 0x1160 (4448)
80385f20: 85 cf 00 74  LH t7, t6, 0x74 (116)
80385f24: 35 ed 00 02  ORI t5, t7, 0x2 (2)
80385f28: 10 00 00 11  BEQ r0, r0, 0x80385f70 (pc + 0x44)  ((*(0x80361160))->off0x74 |= 2;
80385f2c: a5 cd 00 74  SH t5, t6, 0x74 (116)               goto 0x80385f70;

*
80385f30: 3c 18 80 36  LUI t8, 0x8036 (32822)
80385f34: 8f 18 11 60  LW t8, t8, 0x1160 (4448)
80385f38: 8f 19 01 24  LW t9, t8, 0x124 (292)
80385f3c: 17 20 00 0c  BNE t9, r0, 0x80385f70 (pc + 0x30)  if ((*(0x80361160))->off0x124 != 0) goto 0x80385f70;
80385f40: 00 00 00 00  NOP

80385f44: 3c 09 80 36  LUI t1, 0x8036 (32822)
80385f48: 8d 29 11 60  LW t1, t1, 0x1160 (4448)
80385f4c: 85 2a 00 02  LH t2, t1, 0x2 (2)
80385f50: 35 4c 00 01  ORI t4, t2, 0x1 (1)
80385f54: a5 2c 00 02  SH t4, t1, 0x2 (2)                  ((*(0x80361160))->off0x2 |= 1;

80385f58: 3c 0b 80 36  LUI t3, 0x8036 (32822)
80385f5c: 8d 6b 11 60  LW t3, t3, 0x1160 (4448)
80385f60: 24 01 ff fd  ADDIU at, r0, 0xfffffffd (-3)
80385f64: 85 68 00 74  LH t0, t3, 0x74 (116)
80385f68: 01 01 78 24  AND t7, t0, at
80385f6c: a5 6f 00 74  SH t7, t3, 0x74 (116)               ((*(0x80361160))->off0x74 &= 0xfffffffd;

******
80385f70: 10 00 00 01  BEQ r0, r0, 0x80385f78 (pc + 0x4)
80385f74: 00 00 00 00  NOP
80385f78: 8f bf 00 14  LW ra, sp, 0x14 (20)
80385f7c: 27 bd 00 30  ADDIU sp, sp, 0x30 (48)
80385f80: 03 e0 00 08  JR ra




[sp + 0x2a] = (*(0x80361160))->off0x8c;
if ([sp + 0x2a] == 0) goto 0x80385c5c;
*(0x80361160)->off0x15c = 0x8029e2f8(*(0x80361160), *(0x80361158));
[sp + 0x24] = (*(0x80361160))->off0x1c5;
goto 0x80385c68;
80385c5c:
[sp + 0x24] = 0.0;
80385c68:
if (([sp + 0x2a] & 0x2000) == 0) goto 0x80385c98;
(*(0x80361160))->off0x160 = 0x8029e694(*(0x80361160), *(0x80361158));
80385c98:
if ((*(0x80361160))->off0x14c == (*(0x80361160))->off0x18c) goto 0x80385cd8;
(*(0x80361160))->off0x154 = 0;
(*(0x80361160))->off0x150 = 0;
(*(0x80361160))->off0x18c = (*(0x80361160))->off0x14c;
80385cd8:
*(0x80361164) =  (*(0x80361160))->off0x1cc;
80385cec:
[sp + 0x20] = 0x8038b9b0[((*(0x80361164))->off0x0>>24)];
[sp + 0x1c] = ([sp + 0x20])();
if ([sp + 0x1c] == 0) goto 0x80385cec;
(*(0x80361160))->off0x1cc = *(0x80361164);
if (!((*(0x80361160))->off0x154 < 0x3fffffff)) goto 0x80385d74;
(*(0x80361160))->off0x154++
80385d74:
if ((*(0x80361160))->off0x14c == (*(0x80361160))->off0x18c) goto 0x80385db4;
(*(0x80361160))->off0x154 = 0;
(*(0x80361160))->off0x150 = 0;
(*(0x80361160))->off0x18c = (*(0x80361160))->off0x14c;
80385db4:
[sp + 0x2a] = (*(0x80361160))->off0x8c;
if (0 == ([sp + 0x2a] & 0x10)) goto 0x80385de0;
0x8029f8ec(*(0x80361160));
80385de0:
if (0 == ([sp + 0x2a] & 0x08)) goto 0x80385e00;
(*(0x80361160))->off0xd4 = (*(0x80361160))->off0xc8;
80385e00:
if (0 == ([sp + 0x2a] & 0x02)) goto 0x80385e18;
0x802a120c();
80385e18:
if (0 == ([sp + 0x2a] & 0x04)) goto 0x80385e30;
0x802a12a4();
80385e30:
if (0 == ([sp + 0x2a] & 0x200)) goto 0x80385e4c;
0x802a2a84(*(0x80361160));
80385e4c:
if (0 == ([sp + 0x2a] & 0x800)) goto 0x80385e68;
0x802a2a18(*(0x80361160));
80385e68:
if (0 == ([sp + 0x2a] & 0x01)) goto 0x80385e84;
0x80383d68(*(0x80361160));
80385e84:
if (-1 == (*(0x80361160))->off0x1a0) goto 0x80385eac;
0x802a4210();
80385eac:
goto 0x80385f70;
if (0 == ([sp + 0x2a] & 0x40)) goto 0x80385f70;
if ((*(0x80361160))->off0x218 != 0) goto 0x80385f70;
if (0 != ([sp + 0x2a] & 0x80)) goto 0x80385f70;
if ((*(0x80361160))->off0x19c < [sp + 0x24]) goto 0x80385f30;
((*(0x80361160))->off0x2 &= 0xfffffffe;
((*(0x80361160))->off0x74 |= 2;
goto 0x80385f70;
80385f30:
if ((*(0x80361160))->off0x124 != 0) goto 0x80385f70;
((*(0x80361160))->off0x2 |= 1;
((*(0x80361160))->off0x74 &= 0xfffffffd;
80385f70:




[sp + 0x2a] = (*(0x80361160))->off0x8c;
if ([sp + 0x2a]) {
    *(0x80361160)->off0x15c = 0x8029e2f8(*(0x80361160), *(0x80361158));  /* object distance */
    [sp + 0x24] = (*(0x80361160))->off0x1c5;
} else {
    [sp + 0x24] = 0.0;
}

if (([sp + 0x2a] & 0x2000) == 0) goto 0x80385c98;
    (*(0x80361160))->off0x160 = 0x8029e694(*(0x80361160), *(0x80361158));
80385c98:

                                                     /* see HH's note 6 */
if ((*(0x80361160))->off0x14c != (*(0x80361160))->off0x18c) {
    (*(0x80361160))->off0x154 = 0;
    (*(0x80361160))->off0x150 = 0;
    (*(0x80361160))->off0x18c = (*(0x80361160))->off0x14c;
}


   /* run behavior script */

*(0x80361164) =  (*(0x80361160))->off0x1cc;          /* Copy script ptr */
do {
    [sp + 0x20] = 0x8038b9b0[((*(0x80361164))->off0x0>>24)]; /* lookup func */
    [sp + 0x1c] = ([sp + 0x20])();
} while (![sp + 0x1c]);
(*(0x80361160))->off0x1cc = *(0x80361164);           /* copy back ptr */

if ((*(0x80361160))->off0x154 < 0x3fffffff) {
    (*(0x80361160))->off0x154++
}

                                                     /* see HH's note 6 */
if ((*(0x80361160))->off0x14c != (*(0x80361160))->off0x18c) {
    (*(0x80361160))->off0x154 = 0;
    (*(0x80361160))->off0x150 = 0;
    (*(0x80361160))->off0x18c = (*(0x80361160))->off0x14c;
}

[sp + 0x2a] = (*(0x80361160))->off0x8c;
if ([sp + 0x2a] & 0x10) {
    0x8029f8ec(*(0x80361160));
}
if ([sp + 0x2a] & 0x08) {
    (*(0x80361160))->off0xd4 = (*(0x80361160))->off0xc8;
}
if ([sp + 0x2a] & 0x02) {
    0x802a120c();
}
if ([sp + 0x2a] & 0x04) {
    0x802a12a4();
}
if ([sp + 0x2a] & 0x200) {
    0x802a2a84(*(0x80361160));
}
if ([sp + 0x2a] & 0x800) {
    0x802a2a18(*(0x80361160));
}
if ([sp + 0x2a] & 0x01) {
    0x80383d68(*(0x80361160));
}

if (-1 != (*(0x80361160))->off0x1a0) {
    0x802a4210();
} else {
    if (([sp + 0x2a] & 0x40) && !((*(0x80361160))->off0x218) && !([sp + 0x2a] & 0x80)) {
        if ((*(0x80361160))->off0x19c >= [sp + 0x24]) {
            ((*(0x80361160))->off0x2 &= ~1;
            ((*(0x80361160))->off0x74 |= 2;
        } else if (!(*(0x80361160))->off0x124) {
            ((*(0x80361160))->off0x2 |= 1;
            ((*(0x80361160))->off0x74 &= ~2;
        }
    }
}
